package curso.maven.cidades.console;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import curso.maven.cidades.aplicacao.api.AplicacaoCidades;
import curso.maven.cidades.negocio.Cidade;

public class ConsoleListagemCidades {
	private AplicacaoCidades aplicacaoCidades;
	
	public ConsoleListagemCidades(AplicacaoCidades aplicacaoCidades) {
		this.aplicacaoCidades = aplicacaoCidades;
	}
	
	public void listarCidades() {
		List<Cidade> cidades = aplicacaoCidades.listarCidadesPorNome("");
		for (Cidade cidade : cidades) {
			System.out.println(cidade.getNomeCompleto());
		}
	}

	public static void main(String[] args) {
		ApplicationContext contextoAplicacao = new ClassPathXmlApplicationContext(
			new String[] {
				"spring-configuracao-console-cidades.xml",
				"spring-persistencia-cidades.xml",
				"spring-aplicacao-cidades.xml"
			}
		);
		AplicacaoCidades aplicacaoCidades = (AplicacaoCidades) contextoAplicacao.getBean(AplicacaoCidades.class);
		ConsoleListagemCidades consoleCidades = new ConsoleListagemCidades(aplicacaoCidades);
		consoleCidades.listarCidades();
	}
}
